package com.example.headlines.fragment;

import android.icu.text.CaseMap;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.headlines.R;
import com.example.headlines.activity.LoginActivity;
import com.example.headlines.adapter.HomeAdapter;
import com.example.headlines.api.Api;
import com.example.headlines.api.ApiConfig;
import com.example.headlines.api.TtitCallback;
import com.example.headlines.entity.CategoryEntity;
import com.example.headlines.entity.VideoCategoryResponse;
import com.example.headlines.entity.VideoEntity;
import com.example.headlines.entity.VideoListResponse;
import com.example.headlines.util.StringUtils;
import com.flyco.tablayout.SlidingTabLayout;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class HomeFragment extends BaseFragment {

    private ArrayList<Fragment> mFragments = new ArrayList<>();
    private  String[] mTitles;
    private ViewPager viewPager;
    private SlidingTabLayout slidingTabLayout;

    public HomeFragment() {
    }

    public static HomeFragment newInstance() {
        HomeFragment fragment = new HomeFragment();
        return fragment;
    }


    @Override
    protected int initLayout() {
       return R.layout.fragment_home;
    }

    @Override
    protected void initView() {
        viewPager = mRootView.findViewById(R.id.fixedViewPager);
        slidingTabLayout = mRootView.findViewById(R.id.slidingTabLayout);
    }

    @Override
    protected void initData() {
        getVideoCategoryList();
    }

    private void getVideoCategoryList() {
        String token=getStringFromSp("token");
        if (!StringUtils.isEmpty(token)) {
            HashMap<String, Object> params = new HashMap<>();
            params.put("token", token);
            Api.config(ApiConfig.VIDEO_CATEGORY_LIST, params).getRequest(getActivity(), new TtitCallback() {
                @Override
                public void onSuccess(String res) {
                    getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            VideoCategoryResponse response = new Gson().fromJson(res, VideoCategoryResponse.class);
                            if (response != null && response.getCode() == 0) {
                                List<CategoryEntity> list= response.getPage().getList();
                                if (list!=null&&list.size()>0){
                                    mTitles=new String[list.size()];
                                    for (int i = 0; i <list.size() ; i++) {
                                        mTitles[i]= list.get(i).getCategoryName();
                                        mFragments.add(VideoFragment.newInstance(list.get(i).getCategoryId()));
                                    }
                                    viewPager.setOffscreenPageLimit(mFragments.size());
                                    viewPager.setAdapter(new HomeAdapter(getFragmentManager(), mTitles, mFragments));
                                    slidingTabLayout.setViewPager(viewPager);
                                }
                            }
                        }
                    });
                }

                @Override
                public void onFailure(Exception e) {
                }
            });
        }
        else{
            navigateTo(LoginActivity.class);
        }
    }
}
//public class HomeFragment extends BaseFragment  {
//
//    private ArrayList<Fragment> mFragments = new ArrayList<>();
//    private  String[] mTitles;
//    private ViewPager viewPager;
//    private SlidingTabLayout slidingTabLayout;
//
//    public HomeFragment() {
//    }
//
//    public static HomeFragment newInstance() {
//        HomeFragment fragment = new HomeFragment();
//        return fragment;
//    }
//
//    @Override
//    protected int initLayout() {
//        return R.layout.fragment_home;
//    }
//
//    @Override
//    protected void initView() {
//        viewPager = mRootView.findViewById(R.id.fixedViewPager);
//        slidingTabLayout = mRootView.findViewById(R.id.slidingTabLayout);
//    }
//
//    @Override
//    protected void initData() {
//        getVideoCategoryList();
//    }
//    private void getVideoCategoryList() {
//        String token=getStringFromSp("token");
//        if (!StringUtils.isEmpty(token)) {
//            HashMap<String, Object> params = new HashMap<>();
//            params.put("token", token);
//            Api.config(ApiConfig.VIDEO_LIST, params).getRequest(getActivity(), new TtitCallback() {
//                @Override
//                public void onSuccess(String res) {
//                    getActivity().runOnUiThread(new Runnable() {
//                        @Override
//                        public void run() {
//                            VideoListResponse response = new Gson().fromJson(res, VideoListResponse.class);
//                            if (response != null && response.getCode() == 0) {
//                                List<VideoEntity> list= response.getPage().getList();
//                                if (list!=null&&list.size()>0){
//
//                                }
//                            }
//                        }
//                    });
//                }
//
//                @Override
//                public void onFailure(Exception e) {
//
//                }
//            });
//        }
//        else{
//            navigateTo(LoginActivity.class);
//        }
//
////
//    }
//}

